const app = getApp()

Page({
  data: {
    phone: '',
    code: '',
    canLogin: false
  },

  onPhoneInput(e) {
    const phone = e.detail.value
    this.setData({
      phone,
      canLogin: this.checkCanLogin(phone, this.data.code)
    })
  },

  onCodeInput(e) {
    const code = e.detail.value
    this.setData({
      code,
      canLogin: this.checkCanLogin(this.data.phone, code)
    })
  },

  checkCanLogin(phone, code) {
    return phone.length === 11 && code.length === 6
  },

  async handleLogin() {
    const { phone } = this.data
    
    if (!this.data.canLogin) return

    if (!phone || phone.length !== 11) {
      wx.showToast({
        title: '请输入正确的手机号',
        icon: 'none'
      })
      return
    }

    try {
      // 调用用户登录云函数
      const loginResult = await wx.cloud.callFunction({
        name: 'user',
        data: {
          type: 'login',
          phone,
          // openid和session_key在云函数中获取
        }
      })

      if (loginResult.result.success) {
        // 保存用户信息到本地
        wx.setStorageSync('userInfo', {
          phone,
          openid: loginResult.result.openid // 从云函数返回结果中获取openid
        })

        wx.showToast({
          title: '登录成功',
          icon: 'success'
        })

        // 返回上一页
        setTimeout(() => {
          wx.navigateBack()
        }, 1500)
      } else {
        wx.showToast({
          title: loginResult.result.message || '登录失败',
          icon: 'none'
        })
        console.error('登录云函数返回错误:', loginResult.result.message)
      }
    } catch (error) {
      wx.showToast({
        title: '登录失败，请重试',
        icon: 'none'
      })
      console.error('调用用户云函数失败:', error)
    }
  },

  goBack() {
    wx.navigateBack()
  }
})